package com.yhq.spring.websocket.parser.model;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

/**
 * @author hqyin
 * @date 2024/11/20 11:40 AM
 */
@Data
public class HKConvertReq {
    /**
     * 开始或结束识别信号，string 类型，start：开始识别，end:结束识别；
     * 注意：发送完音频后必须发送 end 包告诉服务端没有新的音频发送
     */
    private String signal;

    /**
     * 返回的识别结果 nbest 个数，int 类型，可不传，默认设置为 1
     */
    private Integer nbest;

    /**
     * 是否开启长音频检测静音后继续识别，bool 类型，true：开启 ，false：关闭，
     * 可不传，默认设置为 false;
     * 注：服务开启server vad 功能时不可用
     */
    @JSONField(name = "continuous_decoding")
    private Boolean continuousDecoding;

    /**
     * 设置 vad 静音检测时长，单位毫秒，int 类型，
     * 可不传，默认设置为 500；
     * 注：服务开启 server vad 功能时可用
     */
    @JSONField(name = "speech_pause_time")
    private Integer speechPauseTime;

    /**
     * 启用 server vad，bool 类型，
     * 可不传，默认设置为 false，不启用
     */
    @JSONField(name = "server_vad")
    private Boolean serverVad;


//    /**
//     * 使用 server vad 后缓存帧，bool 类型，启用 server vad，设置该参数可得到精度更好的 vad 尾点.
//     * 可不传，默认设置为 false，
//     * 注意：服务端从 v5.0.1 版本支持
//     */
//    @JSONField(name = "cache_frame")
//    private Boolean cacheFrame;

    /**
     * 启用标点服务，给识别结果加标点，int 类型，可以设置 0/1/2三个值；可不传，默认设置为 0，不启用标点服务
     * 0：不使用标点服务；
     * 1：使用带缓存的标点服务，支持语义相关的多次请求加标点，
     * 每次请求必须携带相同的 session 字段；
     * 2：不带缓存的标点服务，支持多次请求但语义不相关的加标
     * 点；
     */
    private Integer punctuation;

    /**
     * 当前会话 id，string 类型，
     * 可不传，默认服务端生成一个session id
     */
    private String session;

    /**
     * 返回识别结果是否为繁体字，bool 类型；true：繁体字，false：简体字；
     * 可不传，默认设置为 false
     */
    private Boolean tradition;

    /**
     * 产品 id，string 类型，默认为空字符串，
     * 可不传
     */
    @JSONField(name = "product_id")
    private String productId;

    /**
     * 设备 id，string 类型，默认为空字符串，可不传
     */
    @JSONField(name = "device_id")
    private String deviceId;

    /**
     * 应用 id，string 类型，默认为空字符串；
     * 注意：appid 也是应用热词列表文件中的 application id，必须传，
     * 格式 app_xxxxx，方便模型优化和问题跟踪
     */
    @JSONField(name = "app_id")
    private String appId;

    /**
     * 语音类型，string 类型，默认为 PCM，可不传。目前支持传输类
     * 型：PCM 、MP3 两种格式；注意：服务端从 v5.0.1 版本开始支
     * 持
     */
    @JSONField(name = "audio_type")
    private String audioType;

}
